package com.qunar.wan.common_api.service;


import com.qunar.wan.common_api.model.SubClassify;
import com.qunar.wan.common_api.service.mapper.SubClassifyMapper;

import java.util.List;

/**
 * User: hangyu.shen Date: 13-11-26 Time: 上午11:24
 */
public interface SubClassifyService extends BaseService<SubClassify, SubClassifyMapper> {
    /**
     * 通过大分类活动id来查询其拥有的子活动表信息
     *
     * @param supId 大分类活动id
     * @return
     */
    List<SubClassify> selectListBySupId(int supId);

    /**
     * 根据传入的子活动名查找相关记录
     *
     * @param subName 子分类活动名
     * @return
     */
    List<SubClassify> selectListBySubName(String subName);

    /**
     * 根据sub_classify的id查找sub_classify对象
     *
     * @param id sub_classify的id
     * @return
     */
    SubClassify selectSubClassifyById(int id, boolean alive);

    /**
     * 根据请求传入的参数将记录插入数据库sub_classify表
     *
     * @param supId   子分类的父分类id
     * @param subName 子分类名
     */
    void insertSubClassify(int supId, String subName);

    /**
     * 根据传入的id删除对应的记录
     *
     * @param id 子分类活动的id
     */
    void deleteSubClassifyById(int id);

    /**
     * 在sub_classify表中插入子活动记录并在管理员日志中插入日志（事务）
     *
     * @param adminId 登录管理员的id
     * @param supId   子活动的父类id
     * @param subName 要添加的子活动名称
     */
    void insertSubClassifyByTran(int adminId, int supId, String subName);

    /**
     * 在sub_classify表中删除子活动记录并在管理员日志中插入日志（事务）
     *
     * @param adminId 登录管理员的id
     * @param supId   子活动的父类id
     * @param id      要删除的子活动id
     */
    void deleteSubClassifyByTran(int adminId, int supId, int id);
}
